home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / clang / jcool01.zip / TEST_CHA.C < prev    next >
C/C++ Source or Header  |  1992-08-11  |  4KB  |  116 lines

  1. //
  2. // Copyright (C) 1991 Texas Instruments Incorporated.
  3. //
  4. // Permission is granted to any individual or institution to use, copy, modify,
  5. // and distribute this software, provided that this complete copyright and
  6. // permission notice is maintained, intact, in all copies and supporting
  7. // documentation.
  8. //
  9. // Texas Instruments Incorporated provides this software "as is" without
  10. // express or implied warranty.
  11. //
  12.  
  13. #include <cool/char.h>
  14. #include <test.h>
  15.  
  16. static void test_strfind() {
  17.   long start;
  18.   long end;
  19.   char* s = "this is the thing I am searching *star? seard";
  20.   TEST("strfind(s, \"*thing*\", &start, &end)",
  21.        strfind(s, "*thing*", &start, &end), s+12);
  22.   TEST("start", start, 12);
  23.   TEST("end", end, 17);
  24.   TEST("strfind(s, \"*???m *\",  &start, &end)", 
  25.        strfind(s, "*???m *", &start, &end), s+18);
  26.   TEST("start", start, 18);
  27.   TEST("end", end, 23);
  28.   TEST("strfind(s, \"*\\**\", &start, &end)",
  29.        strfind(s, "*\\**", &start, &end), s+33);
  30.   TEST("start", start, 33 );
  31.   TEST("end", end, 34);
  32.   TEST("strfind(s, \"*\\?*\", &start, &end)",
  33.        strfind(s, "*\\?*", &start, &end), s+38);
  34.   TEST("start", start, 38);
  35.   TEST("end", end, 39);
  36.   s = "it can look ?t this and can look to that";
  37.   TEST("strfind(s,\"*ook?t*\",&start,&end)",
  38.        strfind(s, "*ook?t*", &start, &end), s+29);
  39.   TEST("start", start, 29);
  40.   TEST("end", end, 34);
  41.   s = "ep*hello*heder";
  42.   TEST("strfind(s, \"*p*\\*hed*\", &start, &end)",
  43.        strfind(s,"*p*\\*hed*",&start,&end), s+1);
  44.   TEST("start",start,1);
  45.   TEST("end",end,12);
  46.   TEST("strfind(s, \"*\\*hed*\", &start, &end)",
  47.        strfind(s,"*\\*hed*",&start,&end), s+8);
  48.   TEST("start",start,8);
  49.   TEST("end",end,12);
  50.   s = "ccddbabbzz*qqgegg?";
  51.   TEST("strfind(s, \"*d*bb*\\**\", &start,&end)",
  52.        strfind(s,"*d*bb*\\**",&start,&end),s+2);
  53.   TEST("start",start,2);
  54.   TEST("end",end,11);
  55. }
  56.  
  57. static void test_strrfind() {
  58.   long start;
  59.   long end;
  60.   char* s = "this is the thing I am searching *star? seard";
  61.   TEST("strrfind(s, \"*thing*\", &start, &end)",
  62.        strrfind(s, "*thing*", &start, &end), s+12);
  63.   TEST("start", start, 12);
  64.   TEST("end", end, 17);
  65.   TEST("strrfind(s, \"*???m *\",  &start, &end)", 
  66.        strrfind(s, "*???m *", &start, &end), s+18);
  67.   TEST("start", start, 18);
  68.   TEST("end", end, 23);
  69.   TEST("strrfind(s, \"*\\**\", &start, &end)",
  70.        strrfind(s, "*\\**", &start, &end), s+33);
  71.   TEST("start", start, 33 );
  72.   TEST("end", end, 34);
  73.   TEST("strrfind(s, \"*\\?*\", &start, &end)",
  74.        strrfind(s, "*\\?*", &start, &end), s+38);
  75.   TEST("start", start, 38);
  76.   TEST("end", end, 39);
  77.   s = "it can look ?t this and can look to that";
  78.   TEST("strrfind(s,\"*ook?t*\",&start,&end)",
  79.        strrfind(s, "*ook?t*", &start, &end), s+29);
  80.   TEST("start", start, 29);
  81.   TEST("end", end, 34);
  82.   s = "ep*hello*heder";
  83.   TEST("strrfind(s, \"*p*\\*hed*\", &start, &end)",
  84.        strrfind(s,"*p*\\*hed*",&start,&end), s+1);
  85.   TEST("start",start,1);
  86.   TEST("end",end,12);
  87.   TEST("strrfind(s, \"*\\*hed*\", &start, &end)",
  88.        strrfind(s,"*\\*hed*",&start,&end), s+8);
  89.   TEST("start",start,8);
  90.   TEST("end",end,12);
  91.   s = "ccddbabbzz*qqgegg?";
  92.   TEST("strrfind(s, \"*d*bb*\\**\", &start,&end)",
  93.        strrfind(s,"*d*bb*\\**",&start,&end),s+3);
  94.   TEST("start",start,3);
  95.   TEST("end",end,11);
  96. }
  97.  
  98. void test_leak () {
  99.   for (;;) {
  100.     test_strfind();
  101.     test_strrfind();
  102.   }
  103. }
  104. int main (void) {
  105.  
  106.   START("char")
  107.   test_strfind();
  108.   test_strrfind();
  109. #if LEAK
  110.   test_leak();
  111. #endif
  112.   SUMMARY();
  113.   return 0;
  114. }
  115.  
  116.